2017-05-11 95 views
0

我想使用jquery從span提取值值50如何從HTML中提取整數值?

下面是HTML:

<span class='WebRupee'>Rs</span>50 
+2

只有這麼多的HTML你有或者你有一些'50'之前'的

+1

由於downVoter顯然不贊成所有提供的解決方案 - 通過減少所有解決方案 - 或許他/她會有膽量解釋爲什麼這些解決方案如此糟糕?或有完整的說 - 這些都是錯誤的,因爲...這裏是一個更好的選擇... \t \t 簡單downvoting沒有推理或提供替代是bollocks和任何人這樣做 - 應該提醒,本網站推廣最佳實踐方法 - 如果我的回答是錯誤的 - 足夠公平 - 降低投票回報率 - 但擁有自己的球並說出爲什麼你不同意我提供的解決方案 – gavgrif

回答

1

50不存在於span內部。 如果金額的位置是固定的,則可以在跨度的父節點上使用$(...).contents()方法來提取文本節點。

更好的解決方案是使用下面的DOM結構。

<span class='WebRupee'>Rs</span> 
<span class="amount">50</span> 

然後使用$('.amount').html()提取值。

1

最好的選擇是改變你的DOM結構@mjzeus說。

否則你可以使用contents()函數,並使用僅用於文本的過濾器(nodeType3)。在這種情況下,它將返回Rs50,因爲R也是文本。如果你真的需要這種方法來提取數據,你可以過濾掉Rs。

$('.parentOfWebRupee').contents().filter(function() { 
     var result = this.nodeType === 3; 
}); 
1

使用數據屬性和設置的數據值的價值在它自己的範圍

<span class='WebRupee' data-value="50">Rs</span> 
<span class='WebRupeeValue'></span> 

//js(note the parseInt in case you need to do calculations on the value) 

var value = parseInt($('.WebRupee').data('value)); 
$('.WebRupeeValue').text(value)); 
+1

由於downVoter明顯不贊同所提供的所有解決方案 - 降低我們所有人 - 也許他/她會有膽量解釋爲什麼所有這些解決方案都太糟糕了?或者可能有正直的說法 - 這些都是錯誤的,因爲......這是一個更好的選擇... – gavgrif

+0

簡單地downvoting沒有推理或提供替代是bollocks和任何人這樣做 - 應該提醒,該網站提倡最佳實踐方法 - 如果我的答案是錯的 - 公平的 - 投票它 - 但有球擁有這一點,並說出爲什麼你不同意我提供的解決方案 – gavgrif

+0

確切地說,他/她可能會爲這個無法解釋的問題找到解決方案。我們都盡力提供解決方案,但沒有任何理由的倒計時本身顯示出不專業。 –

1

@Mohan:這是很容易提取範圍標記之外的文本。檢查給定的工作代碼。希望你能用這個理清你的問題。

請按照下列步驟來實現:

  1. 包括在標題部分最新版本的jQuery。
  2. 在上面提到的p標籤中加入你自己選擇的類(在我的例子中已經採用了包裝類)
  3. 在關閉body標籤之前,把jQuery代碼放在示例中給出的代碼中。

工作使用jQuery 2.1.1代碼:

var rate = $("p.wrapper") //can not use div as will target all the divs 
 
    .clone() //clone the element so that it will not effect current HTML output 
 
    .children() //select all the children 
 
    .remove() //remove all the children 
 
    .end() //again go back to selected element 
 
    .text(); 
 
    
 

 
alert(rate);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<p class="wrapper"> 
 
    <span class='WebRupee'>Rs</span>50 
 
</p>