簡體   English   中英

如何比較兩個函數中定義的兩個JavaScript變量值

[英]How to compare two javascript variable values defined in two functions

我有兩個如下的javascript函數,它們將計算textareas中的非空白行。

HTML:

<div id="map-devlist" >
    <div class="block-with-text-area">
    <div class="input-quest-with-text-area">Enter your device list(one device in one line)</div>
    <div class="input-resp-with-text-area"><span><textarea  class="textarea" id="devs" name="devs" type="text" onkeyup="devscount();"></textarea></span> </div> 
    </div>
</div>

<div id="lunidlist" >
    <div class="block-with-text-area">
        <div class="input-quest-with-text-area">Enter your LUN IDs in Hex(one ID in one line)</div>
        <div class="input-resp-with-text-area"><span><textarea  class="textarea" id="lunids" name="lunids" type="text" onkeyup="luncount();"></textarea></span> </div>  
    </div>
</div>

<div id="error1"></div>

使用Javascript:

function devscount()
{
    devcounts = 0;
    var lines = $("#devs").val().split("\n");
    for (var i = 0; i < lines.length; i++) {
        if (lines[i].length > 0) devcounts++;
    }
}   

function luncount()
{
    luncounts = 0;
    var lines = $("#lunids").val().split("\n");
    for (var i = 0; i < lines.length; i++) {
        if (lines[i].length > 0) luncounts++;
    }

    if(devcounts == luncounts) {
        var message ="both counts are matching";
    } else {
        var message ="Mismatch between values";
        document.getElementById('error1').innerHTML=message;
    }
}

現在,我想比較這兩個文本區域的行數,如果它們相等但不相等,我需要顯示一條消息。 但是上面的腳本對我不起作用。 當我回聲document.getElementById('error1').innerHTML=devscount; document.getElementById('error1').innerHTML=luncounts; 在其相應功能上,它完美顯示了行數。 但是我無法比較它們的價值。 怎么做 ?

JSFIDDLE設置

您的jsfiddle的問題不僅僅是一個問題。 您嘗試檢查值的方式也存在問題。 這兩個文本區域正在運行功能,以便在鍵入時對其中的項目進行計數,但未運行比較代碼。 我將它們都更改為運行第三個函數checkcounts ,並將腳本修改為此。

var devcounts;
var luncounts;

function devscount() {
    devcounts = 0;
    var lines = $("#devs").val().split("\n");
    for (var i = 0; i < lines.length; i++) {
        if (lines[i].length > 0) devcounts++;
    }
}   

function luncount() {
    luncounts = 0;
    var lines = $("#lunids").val().split("\n");
    for (var i = 0; i < lines.length; i++) {
        if (lines[i].length > 0) luncounts++;
    }
}

function checkcounts() {
    devscount();
    luncount();

    var message;

    if(devcounts == luncounts) {
        message ="both counts are matching";
    } else {
        message ="Mismatch between values";
    }

    document.getElementById('error1').innerHTML=message;
}

工作jsfiddle ...

令您驚訝的是,您正在編寫大量代碼來執行非常非常簡單的操作。 我已經在這個小提琴中替換了您的代碼。 單一功能

function testCounts()
{
 var devCounts = $('#devs').val().split('\n').length;
 var lunCounts = $('#lunids').val().split('\n').length;
 var equals = (devCounts == lunCounts)?'Equal':'Not Equal';
 $('#error1').text(equals);
}

還是我完全錯了。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM